Dockerfile 使用.dockerignore 文件
1 背景知识
通过配置 .dockerignore
文件让Docker排除不需要上传到docker 服务端的文件或目录。
2 .dockerignore 文件的好处
- 构建镜像时避免不需要的大文件上传到服务端,从而加快构建速度,减少网络带宽。
- 避免构建极限时将一些敏感文件打包到镜像中,从而提高docker镜像的安全性。
3 dockerignore 文件的编写方法
- 每行一个条目;
- 以
#
开头的行为注释; - 空行被忽略。
- 构建上下文环境作为根目录。
3.1 文件匹配规则语法:
符号 | 作用 |
---|---|
# | 注释 |
* | 匹配0或多个的字符。 |
? | 匹配1个字符 |
** | 匹配0个或多个目录 |
! | 不匹配某些字符或目录 |
3.2 匹配示例
规则 | 行为 |
---|---|
*/temp* | 匹配根路径下一级目录下所有以temp开头的文件或目录。 |
*/*/temp* | 匹配根路径下两级目录下的所有以temp开头的文件或目录。 |
temp? | 匹配根路径下以temp开头,任意一个字符结尾的文件或目录。 |
**/*.go | 匹配所有路径下以 .go 结尾的文件或目录,即递归搜索所有路径。 |
*.md !README.md |
匹配根路径下所有以 .md 结尾的文件或目录,但README.md除外。 |
4 dockerignore 使用案例
- 除
README.md
以外,所有其他的md
文件都被docker
忽略。
*.md
!README.md
- 将根路径下所有以
.md
结尾的文件排除,以README
开头.md
结尾的文件保留,但是README-secret.md
文件排除。
*.md
README-secret.md
!README*.md
- git 工程下的
dockerignore
文件配置。
.git
_mockData
deleted
email-templates
script
static